/**
 * 剩余参数 这个在js中运用非常的广泛 在ts中要注意类型的定义
 *  剩余参数会被收集成为一个数组 所以要注意用法上要收集成数组的形式收集
 */
function sum() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    return args.reduce(function (before, after) { return before + after; }, 0);
}
console.log(sum(1, 2, 3, 4, 5));
/**
 * 实现一个 数组的push方法  这里要注意的是 剩余参数的使用 剩余参数会被收集成为一个数组
 *  所以只要记住这一点 就很好用啦
 */
function push(arr) {
    var args = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        args[_i - 1] = arguments[_i];
    }
    var length = arr.push.apply(arr, args);
    /**
     * 复习：
     *  数组的 push 方法  是有返回值的  返回的是插入成功之后数组的长度  也就是数组的length属性
     */
    console.log('数组长度', length);
}
var array = ['jimmy', 'xuexue'];
push(array, 'hello', 'world');
console.log('array', array);
